Computer systems are known that utilize a firmware program stored in non-volatile memory to assist with the startup of the computer system and to enable communication with low-level hardware, preparing the way for other programs to execute. For instance, some computer systems utilize a basic input/output system (BIOS) and/or an extensible firmware interface (EFI) firmware that includes program code containing fundamental routines that help transfer information between elements within the computer system. Among other tasks, the program code stored in firmware discovers and initializes components within and connected to the computer system. These components may include a multitude of devices capable of loading a computer's initial program such as an operating system. These initial program load (IPL) devices may include floppy disk drives, hard drives, optical drives, network controllers, and universal serial bus (USB) drives. In many cases, IPL devices store and serve up the program code comprising an operating system such as Linux.
Many computer systems include multiple IPL devices, allowing for multiple sources from which an operating system or other initial program can be loaded. For example, if the firmware in the computer system cannot successfully load an operating system from a floppy disk, it may next attempt to load the operating system from a hard disk, and so on. However, if one or more IPL devices are not discovered, are corrupted, or are otherwise malfunctioning, then an operating system boot cannot be initiated. Moreover, a user may desire to initiate an operating system boot independent of any attached IPL devices in certain situations, but this is not presently possible.
It is with respect to these considerations and others that embodiments presented herein have been made.